1. The Field of the Invention
The present invention relates to computing technology. More specifically, the present invention relates to mechanisms for allowing the flexible update of address book information to a remote address book.
2. The Relevant Technology
Computing technology has revolutionized the way people work and play and has contributed enormously to the advancement of humankind. Computers now aid in enumerable applications such as word processing, computer simulations, advanced gaming, voice recognition, among much more. Computing systems now come in a wide-variety of forms including, for example, desktop computers, laptop computers, Personal Digital Assistants (PDAs), and even mobile telephones and devices.
Many computing systems are configured to support applications such as e-mail or instant messaging that implement an address book. The address book is used by a user of the application (or by the application itself) for a variety of purposes. For example, an e-mail application may use the information to distribute e-mail, or to present options for e-mail recipients, while an instant messaging application may use the information to decide on which participants will be given presence data about which participants. Regardless of the application, the address book allows for quick and easy access to the information stored in the address book.
There are many types of information or attributes that may be stored in an address book. Common examples include first name, surname, e-mail address, telephone number, office location, company title and the like. The information generally is used to assist a user whom is organizing contact information about specific individuals or groups of individuals. For example, an address book entry may list the e-mail address of a single individual or it may list the e-mail address of a group of individuals such as colleagues at work.
Typically, an address book is created and maintained on a server. The server ensures that the client computing systems (“client”) have updated address books by periodically updating the client-side address books. In particular, the server generates an update file that represents a full or incremental update of the address book. The update file has a particular format for a given version of an address book. The update file is then provided to the appropriate clients. This is done so that multiple clients may have access to the attributes stored in the address book. Currently, the server generates a file format that hard codes a list of attributes into a file that the client can read. The client then decodes the file and provides the address book to a client user. Having the address book on the client allows a user to use the address book even when the client is not connected to the server.
It is often the case, however, that newer versions of address books use new attributes, and discontinue the use of old attributes. For example, suppose that an older version of an address book may contain only first name, surname, and e-mail address. A newer version is then developed that recognizes the need for a telephone number. In conventional technology, the update file for the older version of the address book had a particular dedicated file format that recognized that need for only the first name, surname, and e-mail address. A new file format would need to be developed to accommodate the new telephone number attribute. Also, the address book update software on both server and client would also need to be upgraded to recognize the new file format.
Generating a new file format every time a new attribute is needed can be time consuming. Large amounts of computing resources are consumed in the process as the newly generated file format must include all the desired attributes and not just the changed attribute. Therefore what would be advantageous would be an address book update mechanism with enough flexibility to allow attribute updates to an address book without the need to change the underlying file format should new attributes be introduced, or should old attributes become obsolete.